perm filename FORMAT.FF[LSP,LSP]1 blob sn#208729 filedate 1976-03-29 generic text, type T, neo UTF8
(DEFPROP FORMFUNS
 (LAMBDA (NAMES)
  (PROG (DONE LINCNT)
	(SETQ LINCNT 1)
	(LINEF 1)
   LOOP	(COND ((NULL NAMES) (OUTC NIL T) (RETURN DONE)))
	(COND ((NOT (ATOM (CAR NAMES)))
	       (OUTC (EVAL (CONS (Q OUTPUT) (CAR NAMES))) NIL))
	      (T (SETQ DONE (APPEND DONE (FORMATFUN (CAR NAMES))))))
	(SETQ NAMES (CDR NAMES))
	(GO LOOP)))
 FEXPR)

(DFUNC (FORMATFUN NAME)
 (PROG (DONE PLIST PROP)
       (SETQ PLIST (FIRSTPROP NAME))
  LOOP (COND ((LASTPROP PLIST) (RETURN (REVERSE DONE))))
       (SETQ PROP (SEEKPROP (PROPNAM PLIST) (Q PROPFORM)))
       (COND ((NULL PROP) (GO ELOOP)))
       (SETQ DONE (CONS (CONS NAME (PROPNAM PLIST)) DONE))
       ((PROPVAL PROP) NAME (PROPVAL PLIST) (PROPNAM PLIST))
  ELOOP(SETQ PLIST (NEXTPROP PLIST))
       (GO LOOP)))

(DFUNC (FORMATEXPR NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATFEXPR NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATMACRO NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATVALUE NAME PROP FLAG)
       (FORMANEXPR (LIST (Q SETQ) NAME (CDR PROP))))

(MAPDEF PROPFORM (EXPR FORMATEXPR) (FEXPR FORMATFEXPR)
		 (MACRO FORMATMACRO) (VALUE FORMATVALUE))